package com.example.service.usr;

import com.baomidou.mybatisplus.extension.service.IService;
import com.example.context.PageResult;
import com.example.entity.OrderDO;
import com.example.vo.order.*;
import jakarta.validation.Valid;

/**
 * @author zbxComputer
 * @description 针对表【sys_store_order(订单表)】的数据库操作Service
 * @createDate 2024-11-21 12:49:00
 */
public interface OrderService extends IService<OrderDO> {

    void takeOrder(Long orderId);

    void cancelOrder(Long orderId);

    OrderDetailResp getOrderDetail(Long orderId);

    void orderRefund(OrderRefundReq req);

    PreOrderResp preOrderLoad(String preOrderNo);

    PreOrderResp preOrder(PreOrderReq req);

    CreateOrderResp createOrder(CreateOrderReq req);

    OrderPrepayResp prepayOrder(@Valid PrePayOrderReq req);

    PageResult<UsrOrderPageResp> orderList(@Valid UsrOrderPageReq req);

    boolean isVip(Long id);
}
